var defaultLocale = "en"; // default language
var knownLocales = ["en", "th"]; // known languages
var dictionary = {
    en: {
        __label: "English",
        message: {
            event: {
                welcome: function(name) {
                    if (typeof name == "undefined")
                        return "Welcome to Trefoil";
                    return name;
                },
                waitingDuringRegistration: "Please wait a moment.",
                successfulRegistration: "Your account is now ready to use.",
                actionInProgress: function(action) {
                    return action + " in progress<br/><small>Please do not close this window.</small>";
                },
                listingInProgress: "Gathering information. Please wait.",
                uploadInProgress: "Uploading",
                sucessfulUploading: "Files added",
                movingInProgress: "Moving",
                promptingForRemoving: "You are about to permanently remove items in the stock. Are you sure to continue?",
                removingInProgress: "Deleting",
                signInAs: function(person) {
                    return "Signed in as " + person;
                },
                signingOut: "Signing out.",
                signedOut: "Bye bye!"
            },
            warning: {
                aboutToExceedStorageLimit: "You don't really have enough space remaining. Please clean up."
            },
            error: {
                fillInTheBlank: "Please fill in the blank",
                failedToVerifyPassword: "Try to verify password again.",
                cannotCreateFolder: "Couldn't create a folder",
                haveNotSelectFile: "Please select files",
                failedToAddFiles: "Failed to add files",
                failedToComplyRequest: "Failed to comply your request",
                failedToList: "Error while gathering information",
                failedToSignIn: "Failed to sign in"
            }
        },
        label: {
            homeDirectory: "your home directory",
            browserSuggestWhatToDoWithSelectedItems: function (numOfEntries) {
                return "You have <strong>" + numOfEntries + "</strong> item" + (numOfEntries > 1?"s":"")
                    + " in the stock. Now, you can <strong>move</strong>, <strong>delete</strong>"
                    + " or <strong>rename</strong> them.";
            },
            browserSuggestWhatToDoFirst: 
                "To <strong>move</strong>,"
                + " <strong>delete</strong> or <strong>rename</strong> files or"
                + " directories, you need to select items by just singly clicking"
                + " on items (files or folders) that you want."
        }
    },
    th: {
        __label: "Thai (Beta)",
        message: {
            event: {
                welcome: function(name) {
                    if (typeof name == "undefined")
                        return "ยินดีต้อนรับสู่เทรฟอยล์";
                    return name;
                },
                waitingDuringRegistration: "กำลังลงทะเบียน กรุณารอสักครู่",
                successfulRegistration: "การลงทะเบียนเสร็จสิ้น คุณสามารถใช้งานได้ทันที่",
                actionInProgress: function(action) {
                    return "กำลัง" + action + "<br/><small>อย่าปิดหน้าต่างนี้</small>";
                },
                listingInProgress: "กรุณารอสักครู่",
                uploadInProgress: "อัพโหลด",
                sucessfulUploading: "อัพโหลดเสร็จสิ้น",
                movingInProgress: "ย้ายข้อมูล",
                promptingForRemoving: "คุณกำลังจะลบข้อมูลที่ได้เลือกไว้อย่างถาวร แน่ใจว่าจะทำจริงๆ หรือ?",
                removingInProgress: "ลบข้อมูล",
                signInAs: function(person) {
                    return "เข้าสู่ระบบในชื่อของ" + person;
                },
                signingOut: "กำลังออกจากระบบ",
                signedOut: "บาย!"
            },
            warning: {
                aboutToExceedStorageLimit: "คุณมีพื้นที่ไม่พอที่จะทำงานต่อ"
            },
            error: {
                fillInTheBlank: "กรุณากรอกข้อมูลลงในช่องว่าง",
                failedToVerifyPassword: "กรุณายีนยันรหัสผ่านอีกครั้ง",
                cannotCreateFolder: "ไม่สามารถสร้างแฟ้มงานได้",
                haveNotSelectFile: "กรุณาเลือกไฟล์ที่ต้องการก่อนกดส่งไฟล์",
                failedToAddFiles: "ไม่สามารถส่งไฟล์ได้",
                failedToComplyRequest: "ไม่สามารถตอบสนองคำสั่งได้",
                failedToList: "ไม่สามารถทำรายชื่อของข้อมูลได้",
                failedToSignIn: "ไม่สามารถเข้่าสู่ระบบได้"
            }
        },
        label: {
            homeDirectory: "แฟ้มงานหลัก",
            browserSuggestWhatToDoWithSelectedItems: function (numOfEntries) {
                return "เราได้จำสิ่งที่คุณเลือกไว้ คุณสามารถ<strong>ย้าย</strong> <strong>ลบ</strong>"
                    + " หรือ<strong>เปลี่ยนชื่อ</strong>ข้อมูลทุกเวลาได้";
            },
            browserSuggestWhatToDoFirst: 
                "เพื่อที่จะ<strong>ย้าย</strong> <strong>ลบ</strong>"
                    + " หรือ<strong>เปลี่ยนชื่อ</strong>ข้อมูล, เลือกข้อมูลที่ต้องการ"
                    + "โดยกด(ซ้าย)เพียงหนึ่งครั้งบนข้อมูลที่ต้องการ"
        }
    }
}

function localizeUI(langCode) {
    switch (langCode) {
    case "th":
        // Common
        $("label[for=key],label[for=pr-key]").html("ชื่อผู้ใช้ หรืออีเมล์"); // username or email
        $("label[for=password], label[for=rf-password]").html("รหัสผ่าน"); // username or email
        
        // Navigation
        $("#a-sysabout span").html("เทรฟอยล์");
        $("#a-signin span").html("เข้าสู่ระบบ");
        $("#a-password-retrieval span").html("เปลี่ยนรหัสผ่าน");
        $("#a-signup span").html("ลงทะเบียน");
        $("#a-browse span").html("เรียกดูข้อมูล");
        $("#a-add-files span").html("อัปโหลด");
        $("#a-site-info span").html("เว็บไซต์ของคุณ");
        $("#a-user-info span").html("ข้อมูลส่วนตัว");
        $("#a-signout span").html("ออกจากระบบ");
        $("#a-language-switch span").html("เปลี่ยนภาษา");
        
        // Specific to #user-io
        $("#user-io h2").html("เรามาเริ่มกัน"); // Let's get started
        $("#signin h3").html("เข้าสู่ระบบ"); // authentication
        $("#signin button[type=submit]").html("เข้าสู่ระบบ");
        $("#password-retrieval h3").html("ขอรหัสผ่านใหม่"); // Password Recovery
        $("#password-retrieval button").html("ส่งรห้สผ่านอันใหม่มาที่อีเมล์"); // Mail me the password
        $("#password-retrieval p").html("ระบบไม่ได้รับอนุญาตให้ผู้ใช้ขอเปลี่ยนรหัสผ่านได้ด้วยตนเอง กรุณาติดต่อผู้ดูแลระบบโดยตรง"); // Currently, this function is not available. Please contact the administrator.
        $("#signup h3").html("ลงทะเบียน"); // Registration
        $("#signup button[type=submit]").html("ลงทะเบียน");
        $("#signup label[for=termsOK]").html("ข้าพเจ้าตกลงและต้องการที่จะ"); // I am agree and I would like to
        $("#signup label[for=rf-name]").html("ชื่อจริง"); // real name
        $("#signup label[for=rf-email]").html("อีเมล์"); // email address
        $("#signup label[for=rf-username]").html("ชื่อผู้ใช้"); // user name
        $("#signup label[for=rf-verpass]").html("ยีนยันรหัสผ่าน"); // confirm password
    }
}